package com.fishery.base.mapper;

import com.fishery.base.entity.PondFeeding;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fishery.base.entity.vo.FeedingRecordVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author Ghost
 * @since 2021-01-15
 */
public interface PondFeedingMapper extends BaseMapper<PondFeeding> {

	/**
	 * 分页获取基地所有的喂养记录
	 *
	 * @param baseId
	 * @param offset
	 * @param size
	 * @return
	 */
	List<FeedingRecordVo> findAllBaseFeedingWithPage(@Param("baseId") String baseId,
													 @Param("offset") int offset,
													 @Param("size") int size);

	/**
	 * 分页获取某个池塘的喂养记录
	 *
	 * @param pondId
	 * @param offset
	 * @param size
	 * @return
	 */
	List<FeedingRecordVo> findPondFeedingWithPage(@Param("pondId") String pondId,
												  @Param("offset") long offset,
												  @Param("size") long size);

	/**
	 * 获取基地所有的喂养记录
	 *
	 * @param baseId
	 * @return
	 */
	List<FeedingRecordVo> findAllBaseFeedingRecords(String baseId);

	/**
	 * 分页获取某个池塘此次养殖的的喂养记录
	 *
	 * @param farmingId
	 * @param offset
	 * @param size
	 * @return
	 */
	List<FeedingRecordVo> findCurrentPondFeedingWithPage(@Param("farmingId") String farmingId,
														 @Param("offset") int offset,
														 @Param("size") int size);

	/**
	 * 通过farmingId分页获喂养记录（尽管已经被删除了)
	 *
	 * @param farmingId
	 * @param offset
	 * @param size
	 * @param catchTime
	 * @return
	 */
	List<FeedingRecordVo> findPondFeedingWithPageEvenDelete(@Param("farmingId") String farmingId,
															@Param("offset") int offset,
															@Param("size") int size,
															@Param("catchTime") String catchTime);

	/**
	 * 通过farmingId获取记录条目数
	 *
	 * @param farmingId
	 * @param catchTime
	 * @return
	 */
	int selectCountEvenDelete(@Param("farmingId") String farmingId, @Param("catchTime") String catchTime);
}
